When a printer receives a print job from a networked computer, a printer controller associated with the printer typically processes the incoming print job as a special type of file known as PostScript. The controller then decodes the file and outputs the print job to the printer. PostScript is a device-independent page description language developed by Adobe Systems Incorporated. Because the language is device independent, an image may be described without reference to any specific device features (e.g. printer resolution) so that the same description can be used on any printer capable of reading PostScript files.
If the printer does not identify a print job as being a PostScript file, the printer typically will assume that the print job is an ASCII file and will print the ASCII equivalent of the characters from the print job. If the file is not an ASCII file, however, this assumption results in pages of unrecognizable symbols and phrases being printed. Special file formats (e.g., files with extensions such as .gif and .jpg) must, therefore, contain programming to convert such files into PostScript language so that such files can be properly printed.
When a file is sent to the printer (a print job), the print job typically contains a header that includes a description of the format. However, when a user submits a specific type of command, such as a line print command (in UNIX, for example, the commands lp or lpr) the header may not be included, and printing errors may result. The print job may not contain a specific separate sections to describe the file format, but somewhere within the file itself is a description of the file format. Throughout this application, when the term “header” is used, it should be recognized that the term is used to relate to any information regarding file format.
In such networked systems, each personal computer does not need its own dedicated printer, thus reducing the system cost. A print server receives print jobs from a plurality of networked computers and coordinates the distribution of the print jobs to a number of printers. A typical network printing system is shown in FIG. 1. The network printing system includes a printer 2 as a printing device for outputting an image to paper. A network interface controller 3 is provided to connect the printer 2 to a network 4. The network 4 may be either a local (LAN) or a wide (WAN) area network. A printer controller 5 converts a received print job from the network interface controller 3 to printable image data and outputs the converted print job to the printer 2. A plurality of workstations 1, often referred to as “client machines”, each connected to the network 4, and a printer server 7 are also included. The printer server 7 connects the printer 2 and printer controller 5 to the plurality of workstations 1 through the network 4 and the network interface controller 3. In this configuration, the network printing system uses the printer 2 as a shared network resource for use by each of the plurality of workstations 1.
When a user of one of the workstations 1 wants to print a document, the user specifies a document to be printed, sets the appropriate printing conditions (e.g., orientation, number of pages) and instructs the workstation 1 to generate a print job. When the print job is transferred to the printer server 7 through the network 4, the print job is placed in a queue by a print queue function of the printer server 7. The printer server 7 typically queues the print jobs based on the order in which they were received. The printer server 7 then transfers the print job that is in the first queue position to the printer controller 5 through the network 4 and network interface controller 3. The printer controller 5 converts the print job to printable image data, outputs the data to the printer 2 and controls the printer 2. The result is typically the formation of an image or document text on paper.